package com.wyp.utils.redis.prekey;

/**
 * 抽象类实现接口实现获取失效时间和前缀key方法
 *使用模板方法设计模式，但是这里不太标准，应该将抽象类中的方法进行protected final进行修饰，只能出现在子类， 且不能进行重写。
 * @author: Oliver
 */
public abstract class BaseKeyPrefix implements KeyPrefix {

    private Integer expireSeconds;
    private String prefix;

    public BaseKeyPrefix(String prefix) {
        this.expireSeconds = 0;//表示永不过期
        this.prefix = prefix;
    }

    public BaseKeyPrefix(Integer expireSeconds, String prefix) {
        this.expireSeconds = expireSeconds;
        this.prefix = prefix;
    }

    @Override
    public int expireSeconds() {
        return expireSeconds;
    }

    @Override
    public String getPrefix() {
        //通过类名进行区分是哪一个分类的缓存key前缀
        String ClassName = getClass().getSimpleName();
        return ClassName + ":" + prefix;
    }
}
